On OBJECT Gosub CUBE,NINETY,SHIP1,DIAMOND,PLANE,SHIP2
Screen Swap : Wait Vbl
Cls 0
Loop
NEWOBJ:
Inc OBJECT : If OBJECT=7 Then Goto DIE
T=-100 : FR=-1
Load "ram:"+O$(OBJECT),8
Return
TYPE:
If T=410 Then Gosub NEWOBJ
If TY>8 Then TY=8
If TY<0 Then TY=0
If TY=0 Then Set Line %1111111111111111
If TY=1 Then Set Line %1111111011111110
If TY=2 Then Set Line %1111110011111100
If TY=3 Then Set Line %1111100011111000
If TY=4 Then Set Line %1111000011110000
If TY=5 Then Set Line %1110000011100000
If TY=6 Then Set Line %1100000011000000
If TY=7 Then Set Line %1000000010000000
If TY=8 Then Set Line %0
Return
CUBE:
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(1)-50,Y#(1)
Polyline X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(7)-50,Y#(7) To X#(8)-50,Y#(8) To X#(5)-50,Y#(5)
Polyline X#(1)-50,Y#(1) To X#(5)-50,Y#(5)
Polyline X#(2)-50,Y#(2) To X#(6)-50,Y#(6)
Polyline X#(3)-50,Y#(3) To X#(7)-50,Y#(7)
Polyline X#(4)-50,Y#(4) To X#(8)-50,Y#(8)
Return
NINETY:
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(1)-50,Y#(1)
Polyline X#(7)-50,Y#(7) To X#(8)-50,Y#(8) To X#(9)-50,Y#(9) To X#(10)-50,Y#(10) To X#(7)-50,Y#(7)
Polyline X#(11)-50,Y#(11) To X#(12)-50,Y#(12) To X#(13)-50,Y#(13) To X#(14)-50,Y#(14) To X#(15)-50,Y#(15)
Polyline X#(15)-50,Y#(15) To X#(16)-50,Y#(16) To X#(17)-50,Y#(17) To X#(18)-50,Y#(18) To X#(19)-50,Y#(19) To X#(20)-50,Y#(20) To X#(11)-50,Y#(11)
Return
SHIP1:
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(1)-50,Y#(1) To X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(3)-50,Y#(3) To X#(5)-50,Y#(5) To X#(4)-50,Y#(4)
Polyline X#(1)-50,Y#(1) To X#(6)-50,Y#(6) To X#(2)-50,Y#(2)
Return
DIAMOND:
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(1)-50,Y#(1)
Polyline X#(7)-50,Y#(7) To X#(8)-50,Y#(8) To X#(9)-50,Y#(9) To X#(10)-50,Y#(10) To X#(11)-50,Y#(11) To X#(12)-50,Y#(12) To X#(7)-50,Y#(7)
Polyline X#(7)-50,Y#(7) To X#(1)-50,Y#(1) To X#(13)-50,Y#(13) To X#(4)-50,Y#(4) To X#(10)-50,Y#(10)
Polyline X#(8)-50,Y#(8) To X#(2)-50,Y#(2) To X#(13)-50,Y#(13) To X#(5)-50,Y#(5) To X#(11)-50,Y#(11)
Polyline X#(9)-50,Y#(9) To X#(3)-50,Y#(3) To X#(13)-50,Y#(13) To X#(6)-50,Y#(6) To X#(12)-50,Y#(12)
Return
PLANE:
Polyline X#(1),Y#(1) To X#(2),Y#(2) To X#(5),Y#(5) To X#(4),Y#(4) To X#(3),Y#(3) To X#(20),Y#(20) To X#(5),Y#(5)
Polyline X#(3),Y#(3) To X#(1),Y#(1) To X#(4),Y#(4) To X#(2),Y#(2) To X#(20),Y#(20) To X#(1),Y#(1)
Polyline X#(3),Y#(3) To X#(6),Y#(6) To X#(9),Y#(9) To X#(8),Y#(8) To X#(5),Y#(5)
Polyline X#(20),Y#(20) To X#(21),Y#(21) To X#(9),Y#(9) To X#(7),Y#(7) To X#(4),Y#(4)
Polyline X#(6),Y#(6) To X#(7),Y#(7) To X#(8),Y#(8) To X#(21),Y#(21) To X#(6),Y#(6)
Polyline X#(16),Y#(16) To X#(17),Y#(17) To X#(18),Y#(18) To X#(19),Y#(19) To X#(16),Y#(16)
Polyline X#(13),Y#(13) To X#(10),Y#(10) To X#(9),Y#(9) To X#(11),Y#(11) To X#(12),Y#(12)
Polyline X#(9),Y#(9) To X#(15),Y#(15) To X#(14),Y#(14)
Return
SHIP2:
Polyline X#(4),Y#(4) To X#(1),Y#(1) To X#(2),Y#(2) To X#(3),Y#(3) To X#(4),Y#(4) To X#(5),Y#(5) To X#(2),Y#(2)
Polyline X#(3),Y#(3) To X#(1),Y#(1) To X#(5),Y#(5)
Polyline X#(6),Y#(6) To X#(7),Y#(7) To X#(8),Y#(8) To X#(9),Y#(9) To X#(6),Y#(6)
Polyline X#(10),Y#(10) To X#(11),Y#(11) To X#(12),Y#(12) To X#(13),Y#(13) To X#(10),Y#(10)
Polyline X#(14),Y#(14) To X#(16),Y#(16) To X#(15),Y#(15) To X#(17),Y#(17) To X#(14),Y#(14)
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(1)-50,Y#(1)
Polyline X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(7)-50,Y#(7) To X#(8)-50,Y#(8) To X#(5)-50,Y#(5)
Polyline X#(1)-50,Y#(1) To X#(5)-50,Y#(5) : Polyline X#(2)-50,Y#(2) To X#(6)-50,Y#(6)
Polyline X#(3)-50,Y#(3) To X#(7)-50,Y#(7) : Polyline X#(4)-50,Y#(4) To X#(8)-50,Y#(8)
Ink 1
Polyline X#(1)-40,Y#(1) To X#(2)-40,Y#(2) To X#(3)-40,Y#(3) To X#(4)-40,Y#(4) To X#(1)-40,Y#(1)
Polyline X#(5)-40,Y#(5) To X#(6)-40,Y#(6) To X#(7)-40,Y#(7) To X#(8)-40,Y#(8) To X#(5)-40,Y#(5)
Polyline X#(1)-40,Y#(1) To X#(5)-40,Y#(5) : Polyline X#(2)-40,Y#(2) To X#(6)-40,Y#(6)
Polyline X#(3)-40,Y#(3) To X#(7)-40,Y#(7) : Polyline X#(4)-40,Y#(4) To X#(8)-40,Y#(8)
Screen Swap : Wait Vbl
Cls 0 : Inc T : If T=200 Then Fade 3
Until T=210
Wait 45 : T=0
Load "ram:ship1.abk",8
Fade 3,0,$B00,$B,$0
Repeat
For F=1 To 6
Add FR,2
X#(F)=Peek(Start(8)+FR-1)
Y#(F)=Peek(Start(8)+FR)
If FR=1043 Then FR=-1
Next F
Ink 2
Polyline X#(1)-50,Y#(1) To X#(2)-50,Y#(2) To X#(3)-50,Y#(3) To X#(4)-50,Y#(4) To X#(1)-50,Y#(1) To X#(5)-50,Y#(5) To X#(6)-50,Y#(6) To X#(3)-50,Y#(3) To X#(5)-50,Y#(5) To X#(4)-50,Y#(4)
Polyline X#(1)-50,Y#(1) To X#(6)-50,Y#(6) To X#(2)-50,Y#(2)
Ink 1
Polyline X#(1)-40,Y#(1) To X#(2)-40,Y#(2) To X#(3)-40,Y#(3) To X#(4)-40,Y#(4) To X#(1)-40,Y#(1) To X#(5)-40,Y#(5) To X#(6)-40,Y#(6) To X#(3)-40,Y#(3) To X#(5)-40,Y#(5) To X#(4)-40,Y#(4)
Polyline X#(1)-40,Y#(1) To X#(6)-40,Y#(6) To X#(2)-40,Y#(2)
For F=0 To 15 : Rain(0,F)=$0 : Rainbow 0,0,70,16 : Wait Vbl : Next F
Rainbow Del 0 : Screen Close 0
End Proc
Procedure FLAG
Load "ram:flag.abk",9
Restore P
For F=1 To 44 : Read P(F) : Next F
Restore DX
For F=1 To 44 : Read DX(F) : Next F
Restore DY
For F=1 To 44 : Read DY(F) : Next F
Screen Open 0,320,256,4,Lowres : Curs Off : Flash Off : Hide On : Cls 0
Palette 0,0,0,0 : Cls 0 : Double Buffer : Autoback 0 : Bob Update Off
Set Rainbow 0,0,16,"","",""
Rainbow 0,0,40,16
Rain(0,0)=$211 : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,1)=$433 : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,2)=$655 : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,3)=$877 : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,4)=$A99 : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,5)=$CBB : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,6)=$EDD : Rainbow 0,0,40,16 : Wait Vbl
Rain(0,7)=$FFF : Rainbow 0,0,40,16 : Wait Vbl
Rainbow 0,0,40,16
Set Rainbow 1,0,16,"","",""
Rainbow 1,0,290,16
Rain(1,7)=$211 : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,6)=$433 : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,5)=$655 : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,4)=$877 : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,3)=$A99 : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,2)=$CBB : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,1)=$EDD : Rainbow 1,0,290,16 : Wait Vbl
Rain(1,0)=$FFF : Rainbow 1,0,290,16 : Wait Vbl
Rainbow 1,0,290,16
T=0 : Fade 5,0,$FFF,$F00
Repeat
For F=1 To 44
Add P(F),4
X(F)=Peek(Start(9)+P(F))+218-(30*DX(F))
Y(F)=Peek(Start(9)+P(F)+1)+150-(30*DY(F))
Next F
Ink 1
Polyline X(1),Y(1) To X(2),Y(2) To X(3),Y(3) To X(4),Y(4) To X(5),Y(5) To X(11),Y(11) To X(18),Y(18)
Polyline X(18),Y(18) To X(17),Y(17) To X(16),Y(16) To X(15),Y(15) To X(14),Y(14) To X(10),Y(10) To X(1),Y(1)
Paint X(1)-5,Y(1)-5,1
Polyline X(23),Y(23) To X(24),Y(24) To X(25),Y(25) To X(26),Y(26) To X(27),Y(27) To X(33),Y(33) To X(40),Y(40) To X(39),Y(39)
Polyline X(39),Y(39) To X(38),Y(38) To X(37),Y(37) To X(36),Y(36) To X(32),Y(32) To X(23),Y(23)
Paint X(23)-5,Y(23)-5,1
Polygon X(6),Y(6) To X(7),Y(7) To X(8),Y(8) To X(9),Y(9) To X(13),Y(13) To X(22),Y(22) To X(21),Y(21) To X(20),Y(20) To X(19),Y(19) To X(12),Y(12) To X(6),Y(6)
Polygon X(28),Y(28) To X(29),Y(29) To X(30),Y(30) To X(31),Y(31) To X(35),Y(35) To X(44),Y(44) To X(43),Y(43) To X(42),Y(42) To X(41),Y(41) To X(34),Y(34) To X(28),Y(28)
Ink 2
Draw X(41),Y(41) To X(40),Y(40) : Draw X(5),Y(5) To X(6),Y(6) : Draw X(14),Y(14) To X(23),Y(23) : Draw X(22),Y(22) To X(31),Y(31)
Paint X(18)-5,Y(18)-5,2
Screen Swap : Wait Vbl
Cls 0
Inc T : If T=95 Then Fade 5
Until T=98
For F=0 To 15 : Rain(0,F)=$0 : Rainbow 0,0,40,16 : Wait Vbl : Next F
Rainbow Del 0
For F=15 To 0 Step -1 : Rain(1,F)=$0 : Rainbow 1,0,290,16 : Wait Vbl : Next F
Rainbow Del 1 : Screen Close 0
P:
Data 0,4,8,12,16,20,24,28,32
Data 8,24,28,40
Data 16,20,24,28,32,36,40,44,48
Data 24,28,32,36,40,44,48,52,56
Data 32,48,52,64
Data 40,44,48,52,56,60,64,68,72
DX:
Data 0,1,2,3,4,5,6,7,8
Data 0,4,5,8
Data 0,1,2,3,4,5,6,7,8
Data 0,1,2,3,4,5,6,7,8
Data 0,4,5,8
Data 0,1,2,3,4,5,6,7,8
DY:
Data 0,0,0,0,0,0,0,0,0
Data 1,1,1,1
Data 2,2,2,2,2,2,2,2,2
Data 3,3,3,3,3,3,3,3,3
Data 4,4,4,4
Data 5,5,5,5,5,5,5,5,5
End Proc
Procedure PATTERNS
Load "ram:pattlogo.abk",6
Unpack 6 To 6 : Screen Hide 6 : Hide On
For F=0 To 5
Screen Open F,260,220,8,Lowres : Flash Off : Curs Off : Cls 0
Palette 0,0,0,0,0,0,0,0
Screen Hide F
Next F
For F=0 To 5 : Screen Display F,168,247,,70 : Next F
OFF=0
For G=0 To 5
Screen To Front G
For F=50 To 319
Screen Copy 6,F,0,F+1,70 To G,F-35,(Sin(F+OFF)*10)
Screen Copy 6,F,0,F+1,70 To G,F-35,(Sin(F+OFF+20)*10)+70
Screen Copy 6,F,0,F+1,70 To G,F-35,(Sin(F+OFF+40)*10)+140
Next F
For F=0 To 69
Screen Copy G,0,F,260,F+1 To G,(Sin(F+OFF+145)*20),F
Screen Copy G,0,F+70,260,F+71 To G,(Sin(F+OFF+145+20)*20),F+70
Screen Copy G,0,F+140,260,F+141 To G,(Sin(F+OFF+145+40)*20),F+140
Next F
Add OFF,60
Next G
Screen Open 6,220,220,32,Lowres : Flash Off : Curs Off : Cls 0
Screen Display 6,190,25,, : Screen To Front 0 : Screen 0
If A=0 Then Palette $0,$100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00,$E00,$D00,$C00,$B00,$A00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$0
If A=1 Then Palette $0,$10,$20,$30,$40,$50,$60,$70,$80,$90,$A0,$B0,$C0,$D0,$E0,$F0,$E0,$D0,$C0,$B0,$A0,$90,$80,$70,$60,$50,$40,$30,$20,$10,$0
If A=2 Then Palette $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F,$E,$D,$C,$B,$A,$9,$8,$7,$6,$5,$4,$3,$2,$1,$0
Shift Down 1,1,30,1
Repeat
Add X1,XI1 : If X1>360 Then Add X1,-360
Add Y1,YI1 : If Y1>360 Then Add Y1,-360
Add X2,XI2 : If X2>360 Then Add X2,-360
Add Y2,YI2 : If Y2>360 Then Add Y2,-360
Add I,1,1 To 30 : Ink I
Draw CX#(X1),CX#(Y1) To CX#(X2),CX#(Y2)
Gosub WLOGO
Wait Vbl
Add TX,ML
Inc T
Until TX=TL*360
Repeat
Gosub WLOGO
Wait Vbl : Inc T
Until T>750
Shift Off : Fade 3
For F=0 To 45 : Wait Vbl : Gosub WLOGO : Next F
Cls 0
Loop
WLOGO:
If A=0 Then A=1 : Return
A=0 : Add IM,1,0 To 2
If IM=0 Then Add SC,1,0 To 5
If SC=6 Then SC=0
Screen To Front SC : Screen Offset SC,0,(IM*70)+6
Return
CDATA:
Data 0,90,0,90,4,4,1,1,4,4,0
Data 0,90,180,270,4,2,4,2,4,4,1
Data 0,0,0,0,1,2,4,1,4,4,2
Data 90,270,0,90,2,2,2,2,2,2,0
Data 0,90,0,90,2,2,3,3,3,6,1
Data 0,25,50,75,1,1,1,1,1,1,2
Data 999,0,0,0,0,0,0,0,0,0,0
PATDIE:
Screen Close 6
Screen SC : Fade 3 : Wait 45
For F=0 To 5 : Screen Close F : Next F
For F=0 To 15 : Rain(0,F)=$0 : Rainbow 0,0,237,16 : Wait Vbl : Next F